AWS Chatbot + Slack 이용하여 CI/CD 알림 설정하기

AWS CI/CD 설정은 모두 마쳤다면 이젠 그 결과물을 Slack 알림으로 확인해봅시다!!

0. Slack 알람 아키텍처

image

1. Github Actions에 Slack설정하기

action-slack을 활용하여 Slack 알람을 설정합니다.

			- name: action-slack
        uses: 8398a7/action-slack@v3
        with:
          status: ${{job.status}}
          fields: repo, ref, workflow, message, author
          author_name: Github Actions
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
        if: always()
  • secrets는 Github Repo에서 settings에서 설정합니다.

출처: action-slack

1. IAM 추가하기

IAM에서 설정을 추가합니다. (Amazon SNS, AWS Chatbot)

AWS Chatbot은 권한 설정에 Chatbot 정책이 없기 때문에 정책을 인라인으로 추가합니다.

image

image

  • Chatbot을 추가하고 Review policy를 눌러 정책을 생성합니다.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "chatbot:*",
            "Resource": "*"
        }
    ]
}
  • 또는 JSON 편집기를 사용하여 chatbot의 권한을 생성합니다.

2. Amazon SNS, AWS Chatbot 설정하기

2.1 Amazon SNS 생성하기

image

  • Standard를 선택합니다.

2.2 AWS Chatbot 생성하기

image

image

  • Slack 선택

image 허용하고 Slack workspace에서 설정을 합니다.

image

  • name: 봇 이름
  • Slack channel: 원하는 슬랙 채널을 지정합니다.

image

  • Permissions: AWS Chatbot을 이용하여 aws cli를 호출할 수 있는 권한을 설정합니다.

    • 저는 Lambda Role을 부여하여 Lambda 호출할 수 있도록 설정했습니다.
  • Notifications: 이벤트 및 경보 알림을 전송할 수 있도록 리전과 topic(주제)를 선택합니다.

    • Topics: 이전에 설정했던 Amazon SNS를 선택합니다.

image

  • Amazon SNS에서 생성한 Topics를 확인하시면 Subscriptions에 HTTP 프로토콜로 Chatbot이 추가된 걸 확인할 수 있습니다.

3. CodeBuild, CodeDeploy 알람 설정하기

3.1 AWS CodeBuild 알람 설정

image

  • Events that trigger notifications: 빌드 실패했을 경우에만 알람설정을 합니다.
  • Targets

    • AWS Chatbot 설정으로 합니다.

image

  • Build에서 알람이 생성되었습니다.

3.2 CodeDeploy 알람 생성

image

  • Events that trigger notifications: 성공, 실패만 알려주도록 설정합니다.

4. Slack AWS Bot 연결

Amazon SNS에서 설정한 Slack 채널에서 AWS 봇을 다음을 채팅을 쳐서 부릅니다.

  • /invite @aws

image

테스트하기

이제 Github Actions을 이용하여 배포 성공 테스트를 해봅시다.

image 성공알림 테스트가 잘되었군요.

이번에는 빌드 실패 테스트를 합시다.

image

배포 실패 테스트 image

실패알림 테스트도 잘되는군요!!

여기까지 Pre Delivery(Github) → Post Build(CodeBuild) → Post Deploy(CodeDeploy) 알람 설정을 모두 마쳤습니다.

알람 설정을 삭제하고 싶을 때는 CodeStar Notification 권한이 필요하니 꼭 IAM에서 설정하세요!!


Written by@Sunny Son
개발자는 오늘도 뚠뚠

GitHubFacebook